<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>ASDisplayNode(Beta) Category Reference</title>

	<link rel="stylesheet" href="../css/style.css">
	<meta name="viewport" content="initial-scale=1, maximum-scale=1.4">
	<meta name="generator" content="appledoc 2.2.1 (build 1334)">
</head>
<body class="appledoc">
	<header>
		<div class="container" class="hide-in-xcode">
			
			<h1 id="library-title">
				<a href="../index.html">  </a>
			</h1>

			<p id="developer-home">
				<a href="../index.html">AsyncDisplayKit</a>
			</p>
			
		</div>
	</header>

	<aside>
		<div class="container">
			<nav>
				<ul id="header-buttons" role="toolbar">
					<li><a href="../index.html">Index</a></li>
<li><a href="../hierarchy.html">Hierarchy</a></li>

					<li id="on-this-page" role="navigation">
						<label>
							On This Page

							<div class="chevron">
								<div class="chevy chevron-left"></div>
								<div class="chevy chevron-right"></div>
							</div>

							<select id="jump-to">
	<option value="top">Jump To&#133;</option>
	

	
	
	<option value="tasks">Tasks</option>
	
	

	
	
	<optgroup label="Properties">
		
		<option value="//api/name/didDisplayNodeContentWithRenderingContext">didDisplayNodeContentWithRenderingContext</option>
		
		<option value="//api/name/eventLog">eventLog</option>
		
		<option value="//api/name/measurementOptions">measurementOptions</option>
		
		<option value="//api/name/performanceMeasurements">performanceMeasurements</option>
		
		<option value="//api/name/willDisplayNodeContentWithRenderingContext">willDisplayNodeContentWithRenderingContext</option>
		
	</optgroup>
	

	
	<optgroup label="Class Methods">
		
		<option value="//api/name/setRangeModeForMemoryWarnings:">+ setRangeModeForMemoryWarnings:</option>
		
		<option value="//api/name/suppressesInvalidCollectionUpdateExceptions">+ suppressesInvalidCollectionUpdateExceptions</option>
		
	</optgroup>
	

	
	<optgroup label="Instance Methods">
		
		<option value="//api/name/_logEventWithBacktrace:format:">- _logEventWithBacktrace:format:</option>
		
		<option value="//api/name/hierarchyDisplayDidFinish">- hierarchyDisplayDidFinish</option>
		
		<option value="//api/name/placeholderShouldPersist">- placeholderShouldPersist</option>
		
		<option value="//api/name/recursivelyEnsureDisplaySynchronously:">- recursivelyEnsureDisplaySynchronously:</option>
		
	</optgroup>
	
	
</select>
						</label>
					</li>
				</ul>
			</nav>
		</div>
	</aside>

	<article>
		<div id="overview_contents" class="container">
			<div id="content">
				<main role="main">
					<h1 class="title">ASDisplayNode(Beta) Category Reference</h1>

					
					<div class="section section-specification"><table cellspacing="0"><tbody>
						<tr>
	<th>Declared in</th>
	<td>ASDisplayNode+Beta.h</td>
</tr>
						</tbody></table></div>
					

                    

					
					
					<div class="section section-tasks">
						<a title="Tasks" name="tasks"></a>
						

						
						

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/suppressesInvalidCollectionUpdateExceptions" title="suppressesInvalidCollectionUpdateExceptions"></a>
	<h3 class="method-title"><code><a href="#//api/name/suppressesInvalidCollectionUpdateExceptions">+&nbsp;suppressesInvalidCollectionUpdateExceptions</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>ASTableView and ASCollectionView now throw exceptions on invalid updates
like their UIKit counterparts. If YES, these classes will log messages
on invalid updates rather than throwing exceptions.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>+ (BOOL)suppressesInvalidCollectionUpdateExceptions</code></div>

		    
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Note that even if AsyncDisplayKit&rsquo;s exception is suppressed, the app may still crash
as it proceeds with an invalid update.</p>

<p>This property defaults to NO. It will be removed in a future release.</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/recursivelyEnsureDisplaySynchronously:" title="recursivelyEnsureDisplaySynchronously:"></a>
	<h3 class="method-title"><code><a href="#//api/name/recursivelyEnsureDisplaySynchronously:">&ndash;&nbsp;recursivelyEnsureDisplaySynchronously:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Recursively ensures node and all subnodes are displayed.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)recursivelyEnsureDisplaySynchronously:(BOOL)<em>synchronously</em></code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/willDisplayNodeContentWithRenderingContext" title="willDisplayNodeContentWithRenderingContext"></a>
	<h3 class="method-title"><code><a href="#//api/name/willDisplayNodeContentWithRenderingContext">&nbsp;&nbsp;willDisplayNodeContentWithRenderingContext</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>allow modification of a context before the node&rsquo;s content is drawn</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, copy, nullable) ASDisplayNodeContextModifier willDisplayNodeContentWithRenderingContext</code></div>

		    
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Set the block to be called after the context has been created and before the node&rsquo;s content is drawn.
You can override this to modify the context before the content is drawn. You are responsible for saving and
restoring context if necessary. Restoring can be done in contextDidDisplayNodeContent
This block can be called from <em>any</em> thread and it is unsafe to access any UIKit main thread properties from it.</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/didDisplayNodeContentWithRenderingContext" title="didDisplayNodeContentWithRenderingContext"></a>
	<h3 class="method-title"><code><a href="#//api/name/didDisplayNodeContentWithRenderingContext">&nbsp;&nbsp;didDisplayNodeContentWithRenderingContext</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>allow modification of a context after the node&rsquo;s content is drawn</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, copy, nullable) ASDisplayNodeContextModifier didDisplayNodeContentWithRenderingContext</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/measurementOptions" title="measurementOptions"></a>
	<h3 class="method-title"><code><a href="#//api/name/measurementOptions">&nbsp;&nbsp;measurementOptions</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>A bitmask representing which actions (layout spec, layout generation) should be measured.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) ASDisplayNodePerformanceMeasurementOptions measurementOptions</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/performanceMeasurements" title="performanceMeasurements"></a>
	<h3 class="method-title"><code><a href="#//api/name/performanceMeasurements">&nbsp;&nbsp;performanceMeasurements</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>A simple struct representing performance measurements collected.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, assign, readonly) ASDisplayNodePerformanceMeasurements performanceMeasurements</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/placeholderShouldPersist" title="placeholderShouldPersist"></a>
	<h3 class="method-title"><code><a href="#//api/name/placeholderShouldPersist">&ndash;&nbsp;placeholderShouldPersist</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Currently used by ASNetworkImageNode and ASMultiplexImageNode to allow their placeholders to stay if they are loading an image from the network.
Otherwise, a display pass is scheduled and completes, but does not actually draw anything - and ASDisplayNode considers the element finished.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (BOOL)placeholderShouldPersist</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/hierarchyDisplayDidFinish" title="hierarchyDisplayDidFinish"></a>
	<h3 class="method-title"><code><a href="#//api/name/hierarchyDisplayDidFinish">&ndash;&nbsp;hierarchyDisplayDidFinish</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Indicates that the receiver and all subnodes have finished displaying. May be called more than once, for example if the receiver has
a network image node. This is called after the first display pass even if network image nodes have not downloaded anything (text would be done,
and other nodes that are ready to do their final display). Each render of every progressive jpeg network node would cause this to be called, so
this hook could be called up to 1 + (pJPEGcount * pJPEGrenderCount) times. The render count depends on how many times the downloader calls the
progressImage block.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)hierarchyDisplayDidFinish</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setRangeModeForMemoryWarnings:" title="setRangeModeForMemoryWarnings:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setRangeModeForMemoryWarnings:">+&nbsp;setRangeModeForMemoryWarnings:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Only ASLayoutRangeModeVisibleOnly or ASLayoutRangeModeLowMemory are recommended.  Default is ASLayoutRangeModeVisibleOnly,
because this is the only way to ensure an application will not have blank / flashing views as the user navigates back after
a memory warning.  Apps that wish to use the more effective / aggressive ASLayoutRangeModeLowMemory may need to take steps
to mitigate this behavior, including: restoring a larger range mode to the next controller before the user navigates there,
enabling .neverShowPlaceholders on ASCellNodes so that the navigation operation is blocked on redisplay completing, etc.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>+ (void)setRangeModeForMemoryWarnings:(ASLayoutRangeMode)<em>rangeMode</em></code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/_logEventWithBacktrace:format:" title="_logEventWithBacktrace:format:"></a>
	<h3 class="method-title"><code><a href="#//api/name/_logEventWithBacktrace:format:">&ndash;&nbsp;_logEventWithBacktrace:format:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>The primitive event tracing method. You shouldn&rsquo;t call this. Use the ASDisplayNodeLogEvent macro instead.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)_logEventWithBacktrace:(NSArray&lt;NSString*&gt; *)<em>backtrace</em> format:(NSString *)<em>format</em>, <em>...</em></code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/eventLog" title="eventLog"></a>
	<h3 class="method-title"><code><a href="#//api/name/eventLog">&nbsp;&nbsp;eventLog</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>The most recent trace events for this node. Max count is ASDISPLAYNODE_EVENTLOG_CAPACITY.</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, copy) NSArray *eventLog</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">ASDisplayNode+Beta.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						
					</div>
					
					

                    
                    
          
				</main>

				<footer>
					<div class="footer-copyright">
						
						<p class="copyright">Copyright &copy; 2016 AsyncDisplayKit. All rights reserved. Updated: 2016-11-05</p>
						
						
						<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
						
					</div>
				</footer>
			</div>
		</div>
	</article>

	<script src="../js/script.js"></script>
</body>
</html>